package com.mrx.commons.task.model;

import com.alibaba.fastjson2.JSON;
import lombok.Data;

import java.util.Set;

/**
 * @author Mr.X
 * @since 2024-01-12 15:27
 **/
@Data
public class TaskCreateVO {
    /**
     * 任务名称
     */
    private String name;
    /**
     * 任务源码
     */
    private String source;
    /**
     * corn 表达式, 设置了就会进行定时任务
     */
    private String corn;
    /**
     * 是否使用邮件通知执行结果
     */
    private Boolean mailNotify;
    /**
     * 通知邮件接收人
     */
    private String notifyMail;
    /**
     * 需要邮件通知的状态, 默认只通在任务结束时通知下
     */
    private Set<TaskLifeCycle> notifyStatus = Set.of(TaskLifeCycle.SUCCEED);

    public static TaskCreateVO of(String name, String source) {
        TaskCreateVO vo = new TaskCreateVO();
        vo.setName(name);
        vo.setSource(source);
        return vo;
    }

    public String toJSONString() {
        return JSON.toJSONString(this);
    }
}
